Hand held moisture meter intelligent recording

ABSTRACT

Methods and apparatus are disclosed for automated acquisition of moisture readings using a handheld moisture meter. In automated mode, a succession of moisture content readings at successive positions can be acquired without any user interface input, by moving the moisture meter to successive positions on a sample, and holding steady at each position. Moisture readings stable for a time period (e.g. one second) are indicative of moisture content of a sample at a stationary position and are collected. Moisture readings varying in time are indicative of motion of the moisture meter and are not collected. Statistics can be performed on the collected readings. Notifications of stable readings and alerts for out-of-range readings can be provided. Hardware and software architectures are disclosed. The innovative technology is suitable for wood, concrete, and other materials at any stage of manufacturing or product lifecycle.

CROSS REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application No.62/753,681, entitled “HAND HELD MOISTURE METER INTELLIGENT RECORDING,”filed Oct. 31, 2018, which application is incorporated by referenceherein in its entirety.

FIELD

This application describes the invention of the process of automaticallyrecording measurements using a handheld moisture meter.

BACKGROUND

Moisture measurements can be important for quality control at variousstages of manufacture of wood products, and also subsequently duringtheir operational life. Moisture measurements are also important isassessing condition of other materials such as concrete, drywall, paint,sand, or soil. It can often be desirable to perform multiple spotmeasurements over the spatial extent of a product or material sample tobetter assess the overall moisture condition. Handheld moisture meterscan be convenient for making such measurements, but acquisition andanalysis of multiple measurements can become tedious. Accordingly, thereremains a need for improved technology for acquiring multiple moisturemeasurements with a handheld moisture meter.

SUMMARY

In summary, the detailed description is directed to various innovativetechnologies for performing moisture measurement with a handheldmoisture meter. Some examples of the disclosed technology supportautomatic determination of when a reading should be taken, when areading should be retained or discarded, when a moisture meter has beenmoved, and/or automatic computation of various statistical measures onacquired moisture readings, in varying combinations.

In certain examples, the disclosed technology can be implemented as acomputer-implemented method performed by a moisture meter. An automaticrecording mode is entered in response to a received input. In theautomatic recording mode, the following actions are performed withoutfurther user input at a user interface. A first stable moisture readingis detected for a predetermined period of time. Subsequently, a varyingmoisture reading is detected that is different from the first stablemoisture reading. Then, after the varying moisture reading, a secondstable moisture reading is detected, which is stable for thepredetermined period of time. The first and second stable moisturereadings are stored.

In some examples, the method can extend to detecting and storingadditional stable moisture readings while in the automatic recordingmode, and computing one or more statistics on the first, second, andadditional stable moisture readings. The statistics can include one ormore of: minimum, maximum, arithmetic mean, or standard deviation. Asecond received input can clear the statistics, while the moisture meterremains in the automatic recording mode. In additional examples, onlymoisture above a threshold can be incorporated into the computedstatistics. A third received input can cause the moisture meter to exitthe automatic recording mode.

In further examples, the automatic recording mode can include makingrepetitive periodic raw measurements indicative of moisture near themoisture meter, and processing the raw measurements to obtain asuccession of moisture readings including stable and varying moisturereadings. The processing can include one or more of: averaging,filtering, or rounding. The repetitive measurements and processing canbe performed continually during the automatic recording mode, withoutany user input. A varying moisture readings can differ from a respectiveimmediately preceding moisture reading by at least a threshold amount.

In additional examples, a stable moisture reading can be compared with afirst threshold or a second threshold, and an alert signal can begenerated if the first stable moisture reading is below the firstthreshold or above the second threshold. Notification signals can begenerated upon detection of a stable moisture reading or upon detectionof a varying moisture reading.

In certain examples, the disclosed technology can be implemented as amoisture meter apparatus. The moisture meter includes an electronicmoisture sensor and one or more processors configured to operate themoisture sensor and communicate with a user interface. The processorsare configured to execute first, second, and third instructions.Execution of the first instructions causes the moisture meter to acquirea succession of stable moisture readings in a repetitive loop withoutinput from the user interface. Each stable moisture reading isunchanging for at least a predetermined time duration. Successive pairsof stable readings are separated by at least one varying moisturereading different from an immediately preceding stable moisture reading.The varying moisture readings can be indicative of movement of themoisture meter. The second instructions are for computing statistics onthe succession of stable moisture readings. The third instructions arefor providing the statistics to the user interface.

In some examples, the user interface can include a keypad and a displayon the moisture meter, while in other examples, the user interface canbe part of a computing device coupled to the moisture meter over anetwork.

In certain examples, the disclosed technology can be implemented as amethod. An input is provided at the user interface of a moisture meter,to place the moisture meter into an automatic recording mode. Then, inthe automatic recording mode, the moisture meter is placed at successivepositions on a sample to acquire a succession of stable moisturereadings without further input at the user interface.

In some examples, the moisture readings are considered stable if theyvary by less than a threshold amount over a predetermined time duration.In additional examples, a pass-fail determination for the sample can bemade, based on the acquired stable moisture readings. The sample can bewood or concrete, or other materials.

The innovations can be implemented as part of one or more methods, aspart of one or more instruments or computing systems adapted to performan innovative method, or as part of non-transitory computer-readablemedia storing computer-executable instructions for causing an instrumentor computing system to perform the innovative methods. The foregoing andother objects, features, and advantages of the invention will becomemore apparent from the following detailed description, which proceedswith reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a top view of an example handheld moisture meter suitablefor implementing disclosed technologies.

FIG. 2 depicts example usage of the disclosed technologies.

FIG. 3 is a flowchart of an example use case of the disclosedtechnologies.

FIG. 4 is a flowchart of an example method according to the disclosedtechnologies.

FIG. 5 is a flowchart of an example measurement loop with multiplestates, according to the disclosed technologies.

FIG. 6 is a flowchart depicting some extensions of the example method.

FIG. 7 is a flowchart depicting an example of measurement loops with atimer, according to the disclosed technologies.

FIG. 8 is a diagram illustrating an example software architecture forimplementing disclosed technologies.

FIG. 9 is a block diagram of an example hardware architecture forimplementing disclosed technologies.

FIG. 10 is an example state diagram illustrating aspects of thedisclosed technologies.

FIG. 11 is a diagram schematically depicting a computing environmentsuitable for implementation of disclosed technologies.

DETAILED DESCRIPTION Introduction

Handheld moisture meters can be used by placing the meter on a surfaceof a sample to determine sample moisture within a certain penetrationdepth, at the location where the meter is placed. Because themeasurement is local, and because moisture content of samples can varyacross their dimensions, it can be desirable to obtain moisture contentreadings at a number of locations on the sample surface so as todetermine the condition of the sample with confidence. However,requiring an operator to press a key or provide similar input every timea measurement is to be taken can become tedious, can contribute tooperator fatigue, and can lead to non-compliance or an increased rate ofoperator error. The disclosed technologies provide an automatedrecording mode, in which a moisture meter can record a stable readingwhen the meter is held in a fixed position on a sample. The moisturemeter can also detect variable readings when the meter is moved, and canbe ready to take another reading when the moisture reading stabilizes ata new fixed position. Methods and apparatus for these technologies aredescribed further herein.

Example Moisture Meter

FIG. 1 depicts a top view of an example handheld moisture meter 100suitable for use with disclosed technologies. Meter 100 can have a sizeand weight suitable to be held in a user's hand. One or more moisturesensors (not shown) can be placed on or near a bottom surface of themeter 100. One or more moisture readings can be taken with the bottomsurface of the moisture meter placed in contact with a sample whosemoisture is to be measured.

The top surface can accommodate a keypad 120 comprising a plurality ofkeys which can be touch-sensitive keys, proximity-sensitive keys, orpushbuttons. The top surface can also include a display 125, which canbe a segmented display, a pixelated screen, or can include one or moreannunciators for specific functions. The functions of display 125 andkeypad 120 can be integrated, for example as a touchscreen keypad, or asone or more softkeys in which a current function of a key of keypad 120is indicated on the display 125.

Example Usage of Moisture Meter

FIG. 2 depicts example usage of the disclosed technologies. A handheldmoisture meter is shown at three successive positions 220A-220C on asample 210, which can be wooden board. Arrows 232, 234 indicate themoisture meter being moved, either along the surface of sample 210, oroff the surface—i.e. by picking up the moisture meter and repositioningat the next location 220B, 220C. At each of these positions 220A-220C,the meter can be held stationary as indicated by arrows 231, 233, 235and respective moisture readings can be acquired automatically withoutuser input. The moisture meter can beep when a reading has beenrecorded, indicating that the user can move the meter to anotherlocation.

Example Use Case

FIG. 3 is a flowchart 300 of an example use case of the disclosedtechnologies. At process block 310, an input is provided at a userinterface of a moisture meter to place the moisture meter into anautomatic recording mode. At process block 320 an iteration is performedover process blocks 330, 340. The moisture meter is placed at successivepositions on a sample, at process block 330, to acquire a correspondingsuccession of stable moisture readings at process block 340, withoutfurther input at the user interface. Moisture readings can be consideredstable if they vary by less than a threshold amount over a predeterminedtime duration. The sample can be wood or concrete, or another material.At optional process block 350, shown dashed, a pass-fail determinationof the sample can be made, based on the acquired stable moisturereadings. The pass-fail determination can be based on comparing themeasurements to a predetermined threshold stored on the moisture meter.

Example Applications

A wide range of applications can benefit from the disclosed technology,a few of which are described herein. In the lumber industry, logs, roughcut planks, and finished material such as 2 x 4 s or plywood sheets allhave moisture content which can affect usage, storage, or downstreamprocessing. Often, wood products can be stored outdoors and can besusceptible to moisture penetration from an exposed surface. A series ofmeasurements over a sample (e.g. a log or plywood sheet) can be used todetermine whether the sample should be shipped, used, stored for drying,downgraded, or disposed of. Often, a large number of samples need to betested. The disclosed technologies provide for efficient anduser-friendly data acquisition in a production environment, withreduction in operator fatigue and opportunities for human error.

Downstream from lumber operations, finished wood products, such ascabinets, other furniture, musical instruments, or wood flooring,require incoming inspection of wood products used in construction orassembly. Moisture can be a leading cause of warping and other qualityissues, and it can be important to sample multiple points tosatisfactorily verify the condition of incoming wood.

In another area, concrete commonly hardens within 1-2 days, but cancontinue to cure and harden for weeks, over which time moisture isgradually lost. Curing times can vary considerably based on concreteformulation, thickness or shape of a pour, or environmental factors.Moisture loss can be non-uniform. In sensitive situations, it can beimportant to ascertain consistent cure state across a concrete samplebefore applying a load. All these and numerous other applications canbenefit from the disclosed technologies.

Terminology

The usage and meaning of all quoted terms in this section applythroughout this disclosure unless clearly indicated otherwise orrepugnant to the context. The terminology below extends to related wordforms.

An “alert” is an indication of an abnormal condition, such as a readingthat is outside an acceptance band or outside a valid range. Alerts canbe provided audibly, visually, haptically, or by a transmitted message,in any combination. An audible alert can be a beep, a tone sequence, aprogrammable sound, a synthesized or playback voice message. A visualalert can be a lamp, display message, or other display annunciator, andcan be pulsed, steady, or flashing. A haptic alert can be a vibration ofthe moisture meter or associated device. Generally, an alert can bepresented directly by the moisture meter, or by an associated computingdevice such as a smartphone, a wearable appliance, or another portableor stationary computing device. Messages can be sent over a network,e.g. to be logged at a material requirements planning (MRP) enterprisedata system.

“Automatic” refers to operations being performed without further inputsat a user interface. The word “automatic” does not preclude otherrelevant user actions, such as moving a moisture meter from one locationto another, nor does it preclude other inputs at a user interface (suchas for resetting statistics counters or exiting the automatic recordingmode) even while the moisture meter is in an automatic mode.

“Average” refers to an arithmetic mean, or to median, mode, weightedmean, moving average, geometric mean, mid-range value, or any othercentral measure of a set of measurements, readings, or other numericalvalues.

“Filtering” and “filter” apply to processes, hardware devices (e.g.utilizing resistors, capacitors, inductors, or operational amplifiers),or software (e.g. executable instructions) for transforming an inputsignal stream (which can be a continuous signal or a stream of discretevalues) into an output signal stream, such that the output stream hascertain properties defined by the filter. A low-pass filter can removehigh-frequency noise from a signal, producing an output stream that issmoother or more slowly varying than the input stream. A hysteresisfilter can apply a threshold or change band to the input stream, suchthat variations in the input stream above the threshold or outside thechange band can be passed on to the output stream, while smallervariations in the input stream are not passed on.

The term “handheld” refers to any device that has a size and weightsuitable for being held in a person's hand. Characteristic dimensions ofa handheld device can be in the range 1 cm-1 meter and often between 2cm-20 cm inclusive. Characteristic weights of a handheld device can bein the range 1 g-5 kg and often between 50 g-500 g. The term handheldcharacterizes a class of device, and does not require that the deviceactually be held in a person's hand for the disclosed technologies to beused. For example, a handheld moisture meter could be operated by arobotic arm, or mounted on a frame while the sample to be measured ismoved along the meter.

“Moisture” or “moisture content” refer to water contained within anothermaterial, or the amount thereof. Commonly, moisture content can bereported as percent by weight of the sample, however this is not arequirement, and moisture content can also be reported as an absolutedensity of the water present. Moisture content can vary both spatiallyover the sample, and over time.

A “moisture sensor” is a device that can be used to generate a signaldependent on moisture present in the vicinity of the moisture sensor. Amoisture sensor can be integrated into a moisture meter. Some examplemoisture sensors described herein are intended for electricalmeasurements, however this is not a requirement. The disclosedtechnologies can be employed with e.g. optical or other types ofmoisture sensors as well. An electrical moisture sensor can be acombination of two or more electrodes (sometimes, “sensor electrodes”)and associated electronics that can make a measurement indicative ofmoisture. Example moisture sensors can operate on resistive orcapacitive principles. A resistive moisture sensor can measure currentor resistance between sensor electrodes with voltage applied across theelectrodes, or can measure voltage across the electrodes with currentdriven between the electrodes, in order to determine the resistancebetween the electrodes (through the sample), which can indicate themoisture content within the sample. A capacitive moisture sensor canmeasure charging current on a sensor electrode with voltage appliedacross a pair of sensor electrodes, or can measure voltage with chargingcurrent applied, or can measure oscillating frequency of a tank circuitincorporating the capacitance between two sensor electrodes. In one ofthese ways, or a variation thereof, the capacitance of the samplebetween sensor electrodes can be determined, which can indicate themoisture content within the sample. The associated electronics can serveto apply a stimulus signal to the sensor electrodes, to filter oramplify a response signal in a circuit incorporating the sensorelectrodes, or to digitize the response signal after any filtering oramplification, in any combination. Portions of the associatedelectronics, such as an analog-to-digital converter (ADC), can beincorporated in a same integrated circuit (IC) as a microprocessor.

A “raw measurement” is a digital value received by a computer processor(e.g. microprocessor or microcontroller) from electronics (e.g. ananalog-to-digital converter) servicing a sensor such as a moisturesensor. A measurement can be transformed into a reading of a desiredquantity by scaling, calibration, or application of physics equationsunderlying the sensor operation. Some embodiments can use asystem-on-chip (SoC) architecture or a microprocessor IC incorporatingan ADC, in which case the raw measurement can be generated within thesame physical package as the processor.

A “reading” refers to a value of a measured quantity, particularlymoisture content, suitable for presentation to a user or forincorporation into statistics. Typically, a reading can be scaled orcalibrated into predefined units. For example, a moisture reading couldbe 11% calibrated for pine, or 0.08 g/cm³ as an absolute water density.

“Recording” refers to a process of determining and storing a reading,particularly a reading indicative of moisture content. While moisturereadings can be stored persistently, i.e. until a group of readings on asample has been completed or cleared, this is not a requirement. In someembodiments, running sums or histogram counts can be maintained on thefly for subsequent calculations of statistics (such as mean, median,mode, or standard deviation), in which case individual readings may notbe further required and can be overwritten.

The term “sample” refers to any material object or entity on whichmoisture measurements are being made.

A reading is considered “stable” if its variation is less than athreshold amount over a predetermined period of time. In some examples,the threshold amount can be one bit or one unit of a finite precisionrepresentation of the reading, meaning that a stable reading isinvariant, however this is not a requirement. Thresholds of 2, 4, 5, 8,10, 16 or some other number of least significant bits (LSBs) can beused. Thresholds can also be expressed as a percentage of a reading canbe used, such as 0.1%, 0.2%, 0.5%, 1%, 2%, 5%, or 10% of a currentreading or a full-scale reading of the moisture meter. Thresholds can beexpressed in units of moisture content, such as 0.2% moisture contentreferred to pine. In some examples, the predetermined period of time canbe one second, however this is not a requirement, and other periods oftime from 0.1 s to 50 s can be used. In any event, multiple readings aretaken during the period of time used and a determination is made whethereach reading is within the threshold amount. If any of the multiplereadings are outside the threshold, then the reading is consideredunstable and the period of time can be restarted with a new measurement.This process can be repeated until each of multiple readings are withinthe threshold for the period of time, in which case, the reading isconsidered stable and is recorded as a valid reading.

“Statistics” refers to aggregate properties of a set of measurements,readings, or other numerical values. Non-limiting examples of statisticsinclude one or more averages, standard deviation, histogram, minimum,maximum, and count (cardinality) of the set of values.

The terms “top,” “bottom,” and the like are used for convenience, withrespect to a common configuration in which a handheld meter can beplaced on a top surface of a sample. One of ordinary skill willunderstand from this disclosure that a choice of actual orientation canbe varied without departing from the scope of the disclosedtechnologies.

Example Method

FIG. 4 is a flowchart 400 of an example method according to thedisclosed technologies. This method describes acquisition of two stablemoisture readings with a moisture meter such as 100, and can beperformed by a microprocessor or other computing device on board themoisture meter.

At process block 410, the moisture meter can enter an automaticrecording mode. This action can be responsive to a received input suchas a command (e.g. keypress) from a user. The meter can indicateactivation of the automatic recording mode audibly or visibly at a userinterface. Having entered the automatic recording mode, and with themoisture meter held steady on a sample, a stable moisture reading can bedetected at process block 420 and stored at process block 425.Subsequently, one or more moisture readings varying from precedingreadings can be detected at process block 430, indicating that themoisture meter has been moved, for example if the moisture meter islifted off the sample, or moved across an inhomogeneous sample. Inalternate embodiments, movement of the moisture meter can be detected bya sensor such as an accelerometer. With the moisture meter held steadyat a second location, the meter reading can revert to stable values.Then, another stable moisture meter reading can be detected at processblock 450 and stored at process block 460. A notification of asuccessful reading can be provided to a user, such as through an audio,visual or haptic feedback. For example, a moisture meter can beep twiceto indicate that a stable reading has been recorded, or a user interfacelamp or annunciator can be pulsed on.

The flowchart terminates at connector block 499. In some instances,connector block 499 can revert back to process block 430, as shown bydashed line, so that the alternating sequence of detecting varyingreadings and stable readings can be repeated multiple times. In thismanner, locations of abnormal or uneven moisture content can beidentified, or uniformity of moisture levels can be confirmed. Readingscan be continued as long as a user chooses to leave the moisture meterin an automatic recording mode, or can be continued until apredetermined number of readings have been acquired for batch operation.The meter can also time out and exit the automatic recording mode if nostable readings are acquired over a predetermined timeout period. Thestable readings obtained in the automatic recording mode can be storedby the moisture meter.

Example Measurement Loop with Multiple States

FIG. 5 is a flowchart 500 of an example measurement loop which can beused to obtain moisture readings. At process block 510, a measurementreading can be taken, and at process block 520 this measurement can becompared with one or more immediately preceding readings. Followingblock 520, the method forks. The right branch loops back to continuetaking further measurement readings. The left branch proceeds to processblock 530 to detect a change of state.

Entering block 530, the sequence of readings can have three states:Varying, Stable, or Pending_Stable. The stability condition can requirereadings to vary by less than a threshold amount over a specifiedduration, which can correspond to N readings. To illustrate, if thespecified duration is 1 second, and readings are taken 10 times persecond, then N=10. For purposes of discussion, successive readings canbe indexed 1, 2, 3, . . . J−N . . . J−2, J−1, J, . . . . The statesentering block 530 for reading J can be considered as follows.

Stable State

If all preceding readings from J−N to J−1 were within the thresholdamount, then the sequence of readings can already be in a Stable state.If reading J is outside the stability threshold window, then a change ofstate from Stable to Varying can be detected. The flowchart can followthe “Stable→Varying” branch from block 530 to block 550 and return anindication of a varying moisture reading, which can be regarded as anindication of motion of the moisture meter. Such indication can be usedat block 430 of FIG. 4.

Pending_Stable State

If the preceding readings J−1 and J−2 were within the threshold amount,but at least one of the readings from J−N to J−3 was outside thethreshold window, then the readings are not varying, but have notremained within the threshold window long enough to satisfy thecriterion for stability. This state can be called a Pending_Stablestate. A count can be maintained within the Pending_Stable state,indicating a number of consecutive readings within a stability thresholdwindow. If the reading J is within the threshold window, this countercan be incremented. When the counter reaches N (i.e. readings J−N+1 to Jall within the threshold window), then the sequence of readings canenter the Stable state. The flowchart can follow the“Pending_Stable→Stable” branch from block 530 to block 540 and return avalue of the stable reading. This value can be used at blocks 420 or 440of FIG. 4. If the incremented counter remains less than N, the sequenceof readings can remain in the Pending_Stable state, with no furtheraction.

If the reading J is outside the threshold window, then the sequence ofreadings can transition to the Varying state, which can end theprocessing of block 530.

Varying State

If the preceding readings J−1 and J−2 were different by more than thethreshold amount, then the sequence of readings can already be in avarying state. If reading J differs from reading J−1 by more than thethreshold, then the sequence of readings can remain in a Varying state,and there is no state change. If reading J is within the thresholdwindow with respect to reading J−1, then the reading is no longervarying, but may not have remained within the threshold window longenough to satisfy the criterion for stability. The sequence of readingscan enter the Pending_Stable state, the associated counter can be set totwo, and processing at block 530 can be terminated.

Variations of flowchart 500 can be implemented. For example, if N=2, thePending_Stable state can be omitted. Further the rate of taking readingscan be varied according to the state. For example, readings can be takenmore slowly in the Stable state or in the Varying state to conservebattery life, or readings can be taken at a faster rate in thePending_Stable rate for increased confidence in detection of a stablereading.

Example Method Extensions

FIG. 6 is a flowchart 600 depicting some example extensions of themethod of FIG. 4. Starting with connector block 499, such extensions canfollow any of several paths as indicated in FIG. 6.

As a first extension, additional stable moisture readings can bedetected and stored at process block 610. Statistics can be calculatedon the collected stable moisture readings at process block 615. Thestatistics can include one or more of: minimum, maximum, arithmeticmean, standard deviation, counts above or below a threshold, median,another average, or a histogram. Statistics can be computed or displayedafter each stable reading acquired, after completion of a batch ofreadings, at the time of resetting statistics, or at the time of exitingthe automatic recording mode. The statistics can be displayed inresponse to an input, such as one or more key entries to enter a ViewData menu or display mode.

As a further extension, a user input can be received at process block620 while in the automatic recording mode, as a result of which thestatistics can be reset at process block 625. Resetting statistics meansthat subsequent statistics will be calculated only using stable readingsacquired after the reset 625. After a statistics reset 625, the moisturemeter can remain in or revert to the automatic reading mode.

As another extension, a user input can be received at process block 630(which can be distinct from the user input used at process block 625).Based on this input, the moisture meter can exit the automatic recordingmode at process block 635. For example, the moisture meter can revert toa manual mode in which a user input is required each time a new readingis to be acquired.

As another extension, a stable reading can be compared with a lower orupper threshold at process block 640. These thresholds can define anacceptable band for moisture content readings for the sample. At processblock 643, a determination can be made whether the current stablereading is above the upper threshold in which case an alert signal canbe generated at process block 646. Alternatively or additionally, analert signal can be generated at 646 if the stable reading is found tobe below the lower threshold at 643. The lower threshold determinationcan be cascaded with a comparison with a null threshold: a stablereading below the null threshold can be regarded as a reading in air,discarded with no alert, and not counted in statistics. However, astable reading above the null threshold but below the lower thresholdcan be considered as a valid sample moisture reading that is outside theacceptable band. Such a reading can generate an alert, and can also bestored and incorporated into the statistics. That is, only stablereadings above a null threshold can be counted towards the statistics.

Example Measurement Loops with Timer

FIG. 7 is a flowchart 700 depicting an example method of measurementloops with a timer, according to the disclosed technologies. This methodcan operate as a continuous procedure with multiple loops. Thedescription of this procedure starts with a stable reading A having beentaken and stored, at process block 710. After a measurement interval Δtat process block 715, another reading B can be taken at process block720, and compared with the last stored reading A at decision block 725.As long as the readings B continue to be the same as reading A, the Ybranch from decision block 725 can be followed back to block 715, andsuccessive readings B can continue to be taken in a first loop. That is,only one copy of reading A can be stored while the readings remainstable. However, if reading B differs from reading A, then the firstloop can terminate, following the N branch from decision block 725.

The different reading B can start a countdown timer at process block730, set to the amount of time a reading should remain steady in orderto be identified as a stable reading, e.g. T=N·Δt. Reading B can besaved in a temporary register. Then, in a second loop, successivereadings C can be taken at process block 745, after respectivemeasurement delays at block 735. These readings can continue while thenew reading C matches the initial reading B as tested at decision block750. That is, the second loop can follow the Y branch from block 750back to block 735.

The second loop can terminate in two ways. First, if a reading C isdifferent from the initial reading B, then the N branch from decisionblock 750 can be followed to block 755, so that C can be set to the newinitial value for the second loop at process block 755, and thecountdown timer can be reset at block 730. Alternatively, the countdowntimer can expire, which can be tested at decision block 740 followingthe delay at block 735. In this case, with all readings C having beenthe same as initial reading B, the reading B was stable. The Y branchfrom decision block 740 can be followed, and reading B can be stored atprocess block 760 as the next stable reading after reading A. Now, thelast stable reading can be set to B at block 765, and the first loop canresume at block 715, to wait for a change in value of the reading.

The stable readings of process blocks 740, 760, 710 can correspond tothe detection of stable readings elsewhere in this disclosure, forexample in context of e.g. FIG. 2, 4, or 8. The detection of varyingreading at decision block 725 can correspond to the detection of varyingreading or an indication of motion elsewhere in this disclosure, such asin context of e.g. FIG. 2 or 4.

Example Software Architecture

FIG. 8 is a diagram illustrating an example software architecture 800for implementing disclosed technologies. In this example, the softwareis organized as five processes representing measurements (process 810),analysis (process 820), validation (process 840), statistics (process860), and user interface (process 880) respectively.

Starting with the measurement process 810, a raw measurement is made atprocess block 812. After a delay period represented as process block814, the process returns to process block 812 for another rawmeasurement. A raw measurement could be, for example, ananalog-to-digital (A-to-D) converter reading indicating the amplitude orfrequency of a signal obtained by a moisture sensor of the moisturemeter in proximity to a sample. In some examples, the repetition ratefor raw measurements can be about 10 Hz, corresponding to a delay period814 of about 0.1 s, however other delay periods from 1 ms to 10 s can beused.

Raw measurements 819 can be transferred from the measurement process 810to the analysis process 820. In FIG. 8, the double arrows associatedwith the transferred raw measurements 819 indicate the transfer of databetween processes can be asynchronous to none, one, or both of theseprocesses. That is, in some embodiments, each raw measurement can causethe analysis process to be run once. In other embodiments, a group ofraw measurements can cause the analysis process to be run once togenerate a single moisture reading. In further embodiments, the rawmeasurements can be transferred and acted upon in batch mode, which canhelp to preserve battery life of the handheld moisture meter.

Turning to the analysis process 820, raw measurements are processed toobtain stable moisture readings. In signal processing block 822, rawmeasurements can be scaled at process block 824, averaged at processblock 826, rounded or clipped at process block 828, or filtered atprocess block 832. The scaling at process block 824 can includetransforming the measured signal into moisture content according toapplicable physics equations, or applying device or materialcalibrations. The averaging at process block 826 can include a movingaverage, a running average (e.g. an infinite impulse response filter), aweighted average, or an average over a batch of measurements. Therounding at process block 826 can be to any predetermined finiteprecision or least count value, and can include clipping, which isequivalent to applying an offset and then rounding. The filtering atprocess block 832 can include a finite impulse response filter, alow-pass filter, a band-pass filter, downsampling, upsampling, orhysteresis. Although shown as discrete processing blocks, the operationsof blocks 824, 826, 828, 832 can be grouped together in one or moresoftware routines.

Then, as moisture readings are obtained as output from the signalprocessing 822, a determination can be made at decision block 834whether the moisture readings are stable. The stability determination atprocess block 834 can be made by comparing a succession of moisturereadings obtained from the signal processing 822 with previous readingsover a predetermined time period. If these moisture readings areinvariant, or vary by less than a threshold amount, a reading can bydetermined to be stable at decision block 834. Conversely, a moisturereading (output from signal processing 822) that differs from animmediately preceding moisture reading (whether stable or not) by atleast a threshold amount can be determined to be a varying reading. Thepredetermined time period can be 1 second, or in a range 0.1-50 s,0.2-10 s, or 0.5-2 s.

With reference to FIGS. 4-6 described herein, operations such as thoseof measurement process 810 and analysis process 820 can be used todetect the stable readings of process blocks 420, 440, or 610, as wellas the varying (i.e. not stable) moisture readings of process block 430.

Generally, a series of one or more stable readings can be followed by aseries of one or more varying readings, then another series of stablereadings, and so on. In order to collect one reading from eachmeasurement location, a first reading in each series of stable readingscan be retained, while subsequent stable readings and all variablereadings can be discarded. Thus, in addition to detecting whether areading is stable, process block 834 can distinguish the first stablereading from other readings, following the Y and N branchesrespectively. A first stable reading 839 in each series of stablereadings can be transferred from analysis process 810 to validationprocess 840 via the Y branch from block 834. Subsequent stable readingsof each series, and all varying readings can follow the N branch to bediscarded at block 838.

As for the raw measurements 819, the transfer of first stablemeasurements 839 can be synchronous or asynchronous between theprocesses 820, 840. Validation process 840 can determine whether astable reading is valid, invalid, within an acceptance range or outsidethe acceptance range.

At decision block 842, a current stable reading can be compared with anull threshold to determine whether the reading corresponds to air or toa reading on a sample. If the stable reading is below the nullthreshold, it can be considered to be an “air” reading, and can bediscarded at process block 848 by following the Y branch from decisionblock 842. If the stable reading is not an air reading, it can becompared with a lower limit at decision block 844. If below the lowerlimit, the reading can be discarded following the dashed Y branch toblock 848. Additionally, a signal can be sent following arrow 845 toalert block 882 of the user interface process, to be described further.

If the stable reading is above the lower limit, the validation process840 can proceed to decision block 846 where the stable reading can becompared with an upper limit. Similar to handling the lower limit atprocess block 844, a stable reading above the upper limit can bediscarded by following the dashed Y branch to block 848, and an alertcan be generated by signaling the alert block 882 via arrow 847. Astable reading below the upper limit can be retained as a valid stablereading for a sample, and can be stored at process block 852. A signalcan also be sent to notification block 886 indicating acquisition of avalid reading. In this illustration, the only valid samples stored arethose between lower and upper limits. In alternative embodiments, theupper and lower limits can be used to indicate a tolerance band, inwhich case stable readings can be retained and stored even if they failthe lower or upper limit tests of process blocks 844, 846.

The stable readings 859 can be transferred to statistics process 860either synchronously or asynchronously for statistics calculations atprocess block 862. Statistics calculations can include, at process block864, running tallies of partial sums as stable readings are acquired,which can facilitate computation of mean, standard deviation, or otherstatistics measures. Other statistics calculations can include averageat 866, minimum at 868, maximum at 872, or standard deviation at 874.Output statistics values are communicated from block 862 to displaymanager block 884 via arrow 879.

Turning to user interface process 880, subprocess block 882 can generatealerts when stable readings are found to be outside a validity oracceptance band. Display manager subprocess 884 can present stablereadings or calculated statistics on a display. Notification subprocess886 can indicate when valid stable readings are acquired. Alerts andnotification can be auditory, visual, haptic, or as a transmittedelectronic or wireless message, in any combination. Displaypresentation, alerts, or notifications can be issued from the moisturemeter itself, or from an associated auxiliary device such as asmartphone. User interface process 880 can run locally on the moisturemeter, or on the associated auxiliary computing device. Similarly, otherprocesses of the software architecture 800 can be distributed betweenthe moisture meter and the associated computing device.

Example Hardware Architecture

FIG. 9 is a block diagram of an example hardware architecture 900 forimplementing disclosed technologies. Moisture meter 910 can be similarto that illustrated in FIG. 1, and can incorporate a computer 914coupled to a moisture sensor 912 and an integrated user interface 918.Moisture sensor 912 can include sensor electrodes and associatedelectronics to provide a stimulus signal at the sensor electrodes anddetect the response with a sample 930 proximate to the sensorelectrodes. The user interface 918 can include a keypad similar to 120and a display similar to 125. The computer 914 can be based on amicroprocessor or microcontroller with associated peripherals asdescribed herein or as known in the computer art. For example, digitalinput/output ports or a peripheral bus can be used to interface with themoisture sensor 912 or with the user interface 918.

In some examples, the moisture meter 910 can include a network interface916 (such as Bluetooth, Wi-Fi, infrared link, another personal areanetwork, or a proprietary wireless connection) over which the moisturemeter 910 can be coupled, directly or indirectly, to an auxiliarycomputing device 920 having its own network interface 926 and processor924. Auxiliary computing device 920 can be a smartphone, tablet,portable or fixed computer, television set, or remote control device. Invarying examples, the technologies described herein can be implementedwholly on moisture meter 910, or distributed between the moisture meter910 and auxiliary computing device 920. Particularly, auxiliarycomputing device 920 can include its own user interface 928 on whichreadings, statistics, or notifications described herein can bedisplayed, or from which user input can be provided to control theoperations of moisture meter 910. In some examples, internal userinterface 918 can be omitted from the moisture meter 910.

Computer 914, incorporating one or more hardware processors, can operatethe electronic moisture sensor 912, can communicate with external orinternal user interface 918, 928, and/or can execute instructions toperform any of the processes, methods, or variations thereof asdescribed herein. Either moisture meter 910 or auxiliary computer 920can incorporate non-volatile storage 915, 925 for storing measurements,readings, calibration values, or software associated with the disclosedtechnologies, as described herein.

Example State Diagram

FIG. 10 is an example state diagram 1000 illustrating aspects of thedisclosed technologies on a handheld moisture meter. State 1020 is amanual mode of operation, while state 1040 is an automatic recordingmode as described herein. A user input 1041, such as a keypress, can beused to place a moisture meter into automatic recording mode 1040.Likewise, another user input 1042 can be used to restore the moisturemeeting to manual mode 1020.

State 1060 can be accessed to configure the automatic recording mode1040, for example to select a number of readings to be recorded in ameasurement session on a sample, to select the statistics to becomputed, or to set alarm limits above or below which an alarm should beindicated. User inputs 1043, 1044 can be used to enter or exit the modeconfiguration state 1050. Another state 1050 can be used to reset orclear the statistics without exiting the automatic recording mode.Responsive to user input 1045 the moisture meter can enter thestatistics reset state 1060. In state 1060, assorted counters (number ofevents, running total of readings or squares of readings) can be reset(e.g. cleared to zero), following which the moisture meter can revertautomatically to the recording mode 1040. An audio or visiblenotification can indicate entry into or exit from the reset state 1060.In some examples, the moisture meter can undertake transition 1045automatically, for example upon completion of a batch of automatedreadings having a predetermined count, such as 3, 4, or any number inthe range 5-10, 11-20, or even more.

A Generalized Computer Environment

FIG. 11 illustrates a generalized example of a suitable computing system1100 in which described examples, techniques, and technologies,including configuration, deployment, or operation, of an automaticrecording mode of a moisture meter, can be implemented. The computingsystem 1100 is not intended to suggest any limitation as to scope of useor functionality of the present disclosure, as the innovations can beimplemented in diverse general-purpose or special-purpose computingsystems.

With reference to FIG. 11, computing environment 1110 includes one ormore processing units 1122 and memory 1124. In FIG. 11, this basicconfiguration 1120 is included within a dashed line. Processing unit1122 executes computer-executable instructions, such as for implementingcomponents of a software architecture for automated recording (e.g.,components shown in FIG. 8), any of the methods described herein (e.g.,illustrated in context of FIG. 4, 6, 10, or 3), or various otherarchitectures, components, data structures, handlers, managers, ormodules described herein. Processing unit 1122 can be a general-purposecentral processing unit (CPU), a processor in an application-specificintegrated circuit (ASIC), or any other type of processor. In amulti-processing system, multiple processing units executecomputer-executable instructions to increase processing power. Computingenvironment 1110 can also include a graphics processing unit orco-processing unit 1130. Tangible memory 1124 can be volatile memory(e.g., registers, cache, or RAM), non-volatile memory (e.g., ROM,EEPROM, or flash memory), or some combination thereof, accessible byprocessing units 1122, 1130. The memory 1124 stores software 1180implementing one or more innovations described herein, in the form ofcomputer-executable instructions suitable for execution by theprocessing unit(s) 1122, 1130.

A computing system 1110 can have additional features, such as one ormore of storage 1140 (representing e.g. storage for executableinstructions, configuration or state information of a moisture meter),input devices 1150, output devices 1160, or communication ports 1170. Aninterconnection mechanism (not shown) such as a bus, controller, ornetwork interconnects the components of the computing environment 1110.In some examples, operating system software (not shown) provides anoperating environment for other software executing in the computingenvironment 1110, and coordinates activities of the components of thecomputing environment 1110.

The memory 1124 or storage 1140 can also store acquired or calculateddata, including measurements, readings, or statistics of a moisturemeter. The memory 1124 or storage 1140 can also store some or all of aconfiguration file, an auxiliary input file, and/or other configurationand operational data. The tangible storage 1140 can be removable ornon-removable, and includes flash memory, magnetic disks, magnetic tapesor cassettes, CD-ROMs, DVDs, or any other medium which can be used tostore information in a non-transitory way and which can be accessedwithin the computing environment 1110. The storage 1140 storesinstructions of the software 1180 (including instructions and/or data)implementing one or more innovations described herein.

The input device(s) 1150 can be a mechanical, touch-sensing, orproximity-sensing input device such as a pushbutton, keypad, keyboard,mouse, pen, touchscreen, or trackball, a voice input device, a scanningdevice, or another device that provides input to the computingenvironment 1110. The output device(s) 1160 can be a display, indicatorlamp, printer, speaker, optical disk writer, or another device thatprovides output from the computing environment 1110.

The communication port(s) 1170 enable communication over a communicationmedium to another computing entity. The communication medium conveysinformation such as computer-executable instructions, audio or videoinput or output, readings, alerts, notifications, or other data in amodulated data signal. A modulated data signal is a signal that has oneor more of its characteristics set or changed in such a manner as toencode information in the signal. By way of example, and not limitation,communication media can use an electrical, optical, RF, acoustic, orother carrier.

In some examples, computer system 1100 can also include a computingcloud 1190 in which instructions implementing all or a portion of thedisclosed technology can be executed. Any combination of memory 1124,storage 1140, and computing cloud 1190 can be used to store softwareinstructions and data of the disclosed technologies. A local ordatacenter computing environment 1110 can utilize the computing cloud1190 to obtain computing services and perform computing operations(e.g., data processing, data storage, and the like).

In some examples, software embodiments of the disclosed technologies canbe deployed on a smartphone, tablet, portable or fixed computer,television set, memory card, memory stick, or a handheld remote controldevice.

The present innovations can be described in the general context ofcomputer-executable instructions, such as those included in programmodules, being executed in a computing system on a target real orvirtual processor. Generally, program modules or components includeroutines, programs, libraries, objects, classes, components, datastructures, etc. that perform particular tasks or implement particulardata types. The functionality of the program modules can be combined orsplit between program modules as desired in various embodiments.Computer-executable instructions for program modules can be executedwithin a local or distributed computing system.

The terms “system”, “environment”, and “device” are used interchangeablyherein. Unless the context clearly indicates otherwise, neither termimplies any limitation on a type of computing system, computingenvironment, or computing device. In general, a computing system,computing environment, or computing device can be local or distributed,and can include any combination of special-purpose hardware and/orgeneral-purpose hardware and/or virtualized hardware, together withsoftware implementing the functionality described herein. Virtualprocessors, virtual hardware, and virtualized devices are ultimatelyembodied in one or another form of physical computer hardware.

General Considerations

As used in this disclosure, the singular forms “a”, “an”, and “the”include the plural forms unless the context clearly dictates otherwise.Additionally, the terms “includes” and “incorporates” mean “comprises”.Further, the term “coupled” encompasses mechanical, electrical,magnetic, optical, wireless, as well as other practical ways of couplingor linking items together, and does not exclude the presence ofintermediate elements between the coupled items. Furthermore, as usedherein, the terms “or” or “and/or” mean any one item or combination ofitems in the phrase.

The systems, methods, and apparatus described herein should not beconstrued as being limiting in any way. Instead, this disclosure isdirected toward all novel and non-obvious features and aspects of thevarious disclosed embodiments, alone and in various combinations andsubcombinations with one another. The disclosed systems, methods, andapparatus are not limited to any specific aspect or feature orcombinations thereof, nor do the disclosed things and methods requirethat any one or more specific advantages be present or problems besolved. Furthermore, any features or aspects of the disclosedembodiments can be used in various combinations and subcombinations withone another.

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially can in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached figures may not show the various ways in whichthe disclosed things and methods can be used in conjunction with otherthings and methods. Additionally, the description sometimes uses termslike “access,” “acquire,” “analyze,” “apply,” “average,” “calculate,”“calibrate,” “clear,” “clip,” “compare,” “compute,” “delay,”“determine,” “digitize,” “discard,” “display,” “downsample,” “encode,”“enter,” “evaluate,” “execute,” “exit,” “filter,” “forward,” “generate,”“identify,” “input,” “incorporate,” “iterate,” “measure,” “make,”“obtain,” “output,” “place,” “process,” “provide,” “receive,” “record,”“repeat,” “round,” “reset,” “retain,” “retrieve,” “run,” “scale,”“select,” “sense,” “store,” “stream,” “transfer,” “transform,”“transmit,” “upsample,” “use,” “validate,” and “weight” to indicatecomputer operations in a computer system. These terms denote actualoperations that are performed by or managed by a computer. The actualoperations that correspond to these terms will vary depending on theparticular implementation and are readily discernible by one of ordinaryskill in the art.

Theories of operation, scientific principles, or other theoreticaldescriptions presented herein in reference to the apparatus or methodsof this disclosure have been provided for the purposes of betterunderstanding and are not intended to be limiting in scope. Theapparatus and methods in the appended claims are not limited to thoseapparatus and methods that function in the manner described by suchtheories of operation.

Any of the disclosed methods can be implemented as computer-executableinstructions or a computer program product stored on one or morecomputer-readable storage media, such as tangible, non-transitorycomputer-readable storage media, and executed on a computing device(e.g., any available computing device, including tablets, smartphones,or other mobile devices that include computing hardware). Tangiblecomputer-readable storage media are any available tangible media thatcan be accessed within a computing environment (e.g., one or moreoptical media discs such as DVD or CD, volatile memory components (suchas DRAM or SRAM), or nonvolatile memory components (such as flash memoryor hard drives)). By way of example, and with reference to FIG. 11,computer-readable storage media include memory 1124, and storage 1140.The term computer-readable storage media or non-volatile storage do notinclude signals and carrier waves. In addition, the termscomputer-readable storage media or non-volatile storage do not includecommunication ports (e.g., 1170) or communication media.

Any of the computer-executable instructions for implementing thedisclosed techniques as well as any data created and used duringimplementation of the disclosed embodiments can be stored on one or morecomputer-readable storage media. The computer-executable instructionscan be part of, for example, a dedicated software application or asoftware application that is accessed or downloaded via a web browser orother software application (such as a remote computing application).Such software can be executed, for example, on a single local computer(e.g., any suitable commercially available computer) or in a networkenvironment (e.g., via the Internet, a wide-area network, a local-areanetwork, a client-server network, a cloud computing network, or othersuch network) using one or more network computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.For instance, the disclosed technology can be implemented by softwarewritten in Adobe Flash, assembly language, B #, C, C++, C #, Curl, Dart,Fortran, Haskell, Java, JavaScript, Julia, Lisp, Matlab, Octave, Perl,Python, R, Ruby, Rust, SAS, SPSS, SQL, WebAssembly, any derivativesthereof, or any other suitable programming language, or, in someexamples, markup languages such as HTML or XML, using CSS, JSON, or anycombination of suitable languages, libraries, packages, or scripts.Likewise, the disclosed technology is not limited to any particularcomputer or type of hardware. Certain details of suitable computers andhardware are well known and need not be set forth in detail in thisdisclosure.

Furthermore, any of the software-based embodiments (comprising, forexample, computer-executable instructions for causing a computer toperform any of the disclosed methods) can be uploaded, downloaded, orremotely accessed through a suitable communication means. Such suitablecommunication means include, for example, the Internet, the World WideWeb, an intranet, software applications, cable (including fiber opticcable), magnetic communications, electromagnetic communications(including RF, microwave, infrared, and optical communications),electronic communications, or other such communication means.

The disclosed methods, apparatus, and systems should not be construed aslimiting in any way. Instead, the present disclosure is directed towardall novel and nonobvious features and aspects of the various disclosedembodiments, alone and in various combinations and subcombinations withone another. The disclosed methods, apparatus, and systems are notlimited to any specific aspect or feature or combination thereof, nor dothe disclosed embodiments require that any one or more specificadvantages be present or problems be solved. The technologies from anyexample can be combined with the technologies described in any one ormore of the other examples.

In view of the many possible embodiments to which the principles of thedisclosed invention may be applied, it should be recognized that theillustrated embodiments are only preferred examples of the invention andshould not be taken as limiting the scope of the invention. Rather, thescope of the invention is defined by the following claims. We thereforeclaim as our invention all that comes within the scope and spirit ofthese claims.

We claim:
 1. A computer-implemented method, comprising: at a moisturemeter: entering an automatic recording mode responsive to a receivedinput and, in the automatic recording mode, performing actions a)through e) without further input at a user interface: a) detecting afirst stable moisture reading for a predetermined period of time; b)storing the first stable moisture reading; c) detecting one or morevarying moisture readings different from the first stable moisturereading; d) detecting a second stable moisture reading for thepredetermined period of time; and e) storing the second stable moisturereading; wherein action a) precedes c) and action c) precedes d).
 2. Thecomputer-implemented method of claim 1, further comprising: detectingand storing additional stable moisture readings while in the automaticrecording mode; and computing one or more statistics on the first,second, and additional stable moisture readings.
 3. Thecomputer-implemented method of claim 2, wherein the statistics compriseone or more of: minimum, maximum, arithmetic mean, or standarddeviation.
 4. The computer-implemented method of claim 2, wherein thereceived input is a first received input, and further comprising:resetting the statistics in response to a second received input, whileremaining in the automatic recording mode.
 5. The computer-implementedmethod of claim 2, wherein only moisture readings above a threshold areincorporated into the computed statistics.
 6. The computer-implementedmethod of claim 1, wherein the automatic recording mode comprises:making repetitive periodic raw measurements indicative of moistureproximate to the moisture meter; and processing the raw measurements toobtain a succession of moisture readings including the first, second,and varying moisture readings.
 7. The computer-implemented method ofclaim 6, wherein the processing comprises one or more of: averaging,filtering, or rounding.
 8. The computer-implemented method of claim 6,wherein the making and the processing are performed continually duringthe automatic recording mode, without any user input.
 9. Thecomputer-implemented method of claim 1, wherein each of the varyingmoisture readings differs from a respective immediately precedingmoisture reading by at least a threshold amount.
 10. Thecomputer-implemented method of claim 1, wherein the received input is afirst received input, and further comprising: exiting the automaticrecording mode in response to a second received input.
 11. Thecomputer-implemented method of claim 1, further comprising: comparingthe first stable moisture reading with a first threshold or a secondthreshold; and generating an alert signal if the first stable moisturereading is below the first threshold or above the second threshold. 12.The computer-implemented method of claim 1, further comprising:generating respective notification signals responsive to the detectingof the first and second stable moisture readings.
 13. Acomputer-readable medium storing instructions which, when executed byone or more processors, cause the one or more processors to perform thecomputer-implemented method of claim
 1. 14. A moisture meter comprising:an electronic moisture sensor; one or more processors, with memorycoupled thereto, configured to operate the electronic moisture sensor,to communicate with a user interface, and to execute instructionscomprising: first instructions to acquire a succession of stablemoisture readings in a repetitive loop without input from the userinterface; wherein each of the stable moisture readings is unchangingfor at least a predetermined time duration; and wherein successive pairsof the stable moisture readings are separated by at least one varyingmoisture reading different from an immediately preceding one of thestable moisture readings, the varying moisture reading indicative ofmovement of the moisture meter; and second instructions to compute oneor more statistics on the succession of stable moisture readings; andthird instructions to provide the computed statistics to the userinterface.
 15. The moisture meter of claim 14, wherein the userinterface comprises a keypad and a display on the moisture meter. 16.The moisture meter of claim 14, wherein the user interface is part of acomputing device coupled to the moisture meter over a networkconnection.
 17. A method comprising: providing an input at a userinterface of a moisture meter to place the moisture meter into anautomatic recording mode; and placing the moisture meter at successivepositions on a sample to acquire a succession of stable moisturereadings without further input at the user interface.
 18. The method ofclaim 17, wherein the moisture readings are considered stable if theyvary by less than a threshold amount over a predetermined time duration.19. The method of claim 17, wherein the sample comprises wood orconcrete.
 20. The method of claim 17, further comprising: making apass-fail determination for the sample based on the acquired moisturereadings.